// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
import store from './store'
import iView from 'iview'
import config from '@/config'
import importDirective from '@/directive'
import 'iview/dist/styles/iview.css'
import './index.less'
import '@/assets/icons/iconfont.css'
import {FontAwesomeIcon} from '@fortawesome/vue-fontawesome'
import PDF from '_c/pdf'
// import vuescroll from 'vuescroll'
// import 'vuescroll/dist/vuescroll.css'
import XLSX from 'xlsx'
import XLS from 'xlsx-style'
import FileSaver from 'file-saver'
Vue.prototype.$xlsx = XLSX
Vue.prototype.$xls = XLS
Vue.prototype.$fileSaver = FileSaver
// 实际打包时应该不引入mock
/* eslint-disable */
if (process.env.NODE_ENV !== 'production') require('@/mock')

Vue.component('font-awesome-icon', FontAwesomeIcon)

Vue.use(iView, {})
// Vue.use(vuescroll, {
//   /** 在这里自定义组件名字，默认是vueScroll */
//   name: 'customScroll',
//   /** 在这里设置全局默认配置 */
//   ops: {
//     /** 这里的 vuescroll 仅仅是一个配置项，而不是 vuescroll 组件本身。设置 vuescroll 的配置项会导致决定性的变动 */
//     vuescroll: {
//       //选择 vuescroll 一个模式, native 或者 slide 或者 pure-native
//       mode: 'native',
//       // 设置 vuescroll的大小类型， 可选的有percent, number
//       // 设置为 percent 会把 vuescroll 的 height 和 width 设置成100%,
//       // 设置成 number 的话 vuescroll 会自动计算父元素的大小，并将 height 和 width 设置成对应的数值。
//       // 提示，如果父元素的尺寸为百分比大小时建议设置成 number，如果父元素大小为一个固定的px的值，那么设置为百分比比较合适一些。
//       sizeStrategy: 'number',
//       // 是否开启监听 dom resize
//       detectResize: true
//     },
//     /** scrollPanel 内容的包装. 通过改变 scrollPanel 的 scrollLeft 和 scrollTop 来使内容移动。*/
//     scrollPanel: {
//       // 当组件 mounted 了以后，自动滚动到一个坐标
//       initialScrollY: false, // 垂直方向上的滚动距离在组件加载完以后，比如 100 或 10%
//       initialScrollX: false, // 水平方向上的滚动距离在组件加载完以后，比如 100 或 10%
//       // 是否允许 x 或 y 方向上的滚动
//       scrollingX: true,
//       scrollingY: true,
//       // 滚动的速度。在你点击滚动轨道或者调用 scrollTo 或者 scrollBy 的时候起作用。
//       speed: 300, // 滚动的完成所需的时间。
//       // 滚动动画
//       easing: undefined,
//       // 设置是否启用 padding，可以用来阻止内容被滚动条遮住一部分。
//       padding: true,
//       // 有时候原声滚动条可能在左侧,
//       // 请查看 https://github.com/YvesCoding/vuescroll/issues/64
//       verticalNativeBarPos: 'right'
//     },
//     /** 滚动条滚动的地方 */
//     rail: {
//       background: 'rgb(245, 245, 245)', // 设置滚动轨道背景色
//       opacity: 0, // 设置轨道的透明度
//       /** Rail's size(Height/Width) , default -> 6px */
//       size: '10px', // 设置轨道的尺寸
//       /** Specify rail and bar's border-radius, or the border-radius of rail and bar will be equal to the rail's size. default -> false */
//       // 制定 rail 和 bar 的 boder-radius，默认为不指定，即自适应于 rail 的大小
//       specifyBorderRadius: false,
//       /** Rail the distance from the two ends of the X axis and Y axis. */
//       // 设置轨道距离 X 轴和 Y 轴的间距
//       gutterOfEnds: '7px',
//       /** Rail the distance from the side of container. */
//       // 设置轨道距离容器侧边的间距
//       gutterOfSide: '0px',
//       /** Whether to keep rail show or not, default -> false, even content height is not enough */
//       // 设置是否即使在高度不够的情况下也显示 rail
//       keepShow: false
//     },
//     /** 滚动条，类似于原生的滚动条 */
//     bar: {
//       /** 当不做任何操作时滚动条自动消失的时间 */
//       showDelay: 500, // 控制滚动条每次显示多长时间然后自动消失
//       /** 是否只在滚动的时候现实滚动条 */
//       onlyShowBarOnScroll: true,
//       /** 是否保持显示*/
//       keepShow: true, // 设置滚动条是否保持显示
//       /** 背景色*/
//       background: 'rgb(128, 134, 149)', // 设置滚动条背景色
//       /**  透明度  */
//       opacity: 0.8, // 设置滚动条透明度
//       /** 当你鼠标移动到滚动条的时候滚动条的样式， 返回一个style对象， 和现在的对象融合 */
//       hoverStyle: false // 只在PC上有效，当鼠标指针移上去的时候显示的颜色
//     }
//   }
// })

Vue.use(PDF)

Vue.config.productionTip = false
/**
 * @description 全局注册应用配置
 */
Vue.prototype.$config = config
/**
 * 注册指令
 */
importDirective(Vue)

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  store,
  render: h => h(App)
})
